package cn.lavenir.fyai.rag.stream;

import dev.langchain4j.community.model.dashscope.QwenEmbeddingModel;
import dev.langchain4j.data.segment.TextSegment;
import dev.langchain4j.store.embedding.EmbeddingStore;
import dev.langchain4j.store.embedding.pinecone.PineconeEmbeddingStore;
import dev.langchain4j.store.embedding.pinecone.PineconeServerlessIndexConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author dinghq
 * @description
 * @date 2025/7/8
 */
//@Configuration
public class EmbeddingStoreConfig {

    @Autowired
    private QwenEmbeddingModel embeddingModel;

    @Bean
    public EmbeddingStore<TextSegment> embeddingStore() {
        System.out.println("创建向量存储");
        //创建向量存储
        EmbeddingStore<TextSegment> embeddingStore = PineconeEmbeddingStore.builder()
                .apiKey("")
                //如果指定的索引不存在，将创建一个新的索引
                .index("yjg-index")
                //如果指定的名称空间不存在，将创建一个新的名称 空间
                .nameSpace("yjg-namespace")
                .createIndex(PineconeServerlessIndexConfig.builder()
                        //指定索引部署在 AWS 云服务上。
                        .cloud("AWS")
                        //指定索引所在的 AWS 区域为 us-east-1。
                        .region("us-east-1")
                        //指定索引的向量维度，该维度与 embeddedModel 生成的向量维度相同。
                        .dimension(embeddingModel.dimension())
                        .build()).build();
        System.out.println("创建向量存储成功");
        return embeddingStore;
    }
}
